Dart dart2native

dart2native 是一个命令行工具,用于将 Dart 源代码提前(AOT)编译为本地 x64 机器代码。该命令支持在 Windows、macOS 和 Linux 上运行。其输出可以是独立的可执行文件(默认)或者可以通过 Dart dartaotruntime 命令运行的 AOT 快照。

源码阅读

原理:该工具执行分为几个步骤:

  1. generateAotKernel:通过代码生成 Dart AOT Kernel 中间语法表示
  2. generateAotSnapshot:进一步生成 Dart AOT Snapshot
    1. 如果要生成 Dart aot-snapshot,到这一步就结束了
  3. 如果要生成 Dart exe,执行以下步骤:
    1. writeAppendedExecutable:输出最终的产物
    2. markExecutable:chmod 添加可运行权限

源码:

使用

编译独立可执行文件

使用 dart2native 创建独立可执行文件的示例:

$ dart2native bin/main.dart -o bin/my_app

您可以像其他可执行文件一样分发和运行该可执行文件。

编译 AOT 快照

要创建 AOT 快照,可以在命令中添加 -k aot

$ dart2native bin/main.dart -k aot

然后可以使用 dartaotruntime 命令运行应用程序。

与 Dart compile aot-snapshot 关系

dart2nativeDart compile aot-snapshot 在功能上有一些相似之处,但也存在一些关键区别。

相似性:

区别:

已知限制

选项

dart2aot

在 Dart 2.6 之前的版本包含了名为 dart2aot 的工具,用于生成 AOT 快照。dart2native 命令取代了 dart2aot,并具有 dart2aot 功能的超集。


本文作者:Maeiee

本文链接:Dart dart2native

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!